define(async () => {
    const util = await require("../util");
    const Scene = await require("Scene");
    let Node;
    lazyRequire("Node", v => Node = v);

    const data = {
        childrens: [
            {
                type: "decision",
                arbiter: (scene, layer, node) => {
                    return true;
                },
                childrens: [
                    {
                        type: "action",
                        action: "turnAround",
                        childrens: []
                    }
                ]
            }
        ]
    };

    class DecisionNode {

        childrens = [];  //子节点集合

        static build() {
            
        }

    }

    class ActionNode {

        childrens = [];  //子节点集合

        static build() {

        }

    }

    class Tree {

        childrens = [];  //子节点集合

        constructor() {
            
        }
    
        static build(data) {
            
        }
    
    }

    const tree = Tree.build(data);
    console.log(tree);

    return Tree;
});